package com.common.base.widget

import android.content.Context

import android.content.res.TypedArray

import android.util.AttributeSet
import androidx.appcompat.widget.AppCompatButton
import com.common.base.R


/**
 *
 * 作者：sosou
 *
 * 版本：1.0
 *
 * 创建日期：10/2/2023
 *
 * 描述：自定义设置字体按钮
 *
 * 修订历史：
 *
 */
class CustomButton : AppCompatButton {
    /**
     * 构造函数
     * @param context 保存对象
     * @param attrs 属性表
     * @param defStyle 样式
     */
    constructor(context: Context, attrs: AttributeSet?, defStyle: Int) : super(
        context,
        attrs,
        defStyle
    ) {
        initView(context, attrs)
    }

    /**
     * 构造函数
     * @param context 保存对象
     * @param attrs 属性表
     */
    constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) {
        initView(context, attrs)
    }

    /**
     * 构造函数
     * @param context 保存对象
     */
    constructor(context: Context) : super(context) {}

    /**
     * 设置文字属性
     * @param context 保存对象
     * @param attrs 属性
     */
    fun initView(context: Context, attrs: AttributeSet?) {

        // 属性不能为空
        if (attrs == null) {
            throw RuntimeException(resources.getString(R.string.attr_not_null))
        }

        // 设置属性
        val typed: TypedArray = context.obtainStyledAttributes(attrs, R.styleable.CustomButton)
        buttonTypeface(typed.getInt(R.styleable.CustomButton_cub_text_style, 0))

        // 回收属性表
        typed.recycle()
        includeFontPadding = false
    }

    /**
     * 设置文字字体（判断文字位置。设置文字字体）
     *
     * @param textStyle 文字
     */
    fun buttonTypeface(textStyle: Int) {
//        when (textStyle) {
//            1 -> setTypeface(App.typefaceBold)
//            2 -> setTypeface(App.typefaceMedium)
//            else -> setTypeface(App.typefaceRegular)
//        }
    }
}